Skip to main content link. Accesskey S
  • Help
  • HCL Logo
  • HCL Notes and Domino Application Development wiki
  • THIS WIKI IS READ-ONLY. Individual names altered for privacy purposes.
  • HCL Forums and Blogs
  • Home
  • Product Documentation
  • Community Articles
  • Learning Center
  • API Documentation
Search
Community Articles > 日本語 - Japanese > XPages のイベント処理サーバーオプション
  • Share Show Menu▼
  • Subscribe Show Menu▼

Recent articles by this author

XPages データソース解説 - URL パラメータ

XPages のデータソースとページをアクセスする際の URL パラメータとの関係について解説します。

XPages データソース解説 - スコープ

XPages のデータソースのスコープについて解説します。

XPages データソース解説 - 定義方法

XPages のデータソースの定義方法について解説します。

XPages データソース解説 - 種類

XPages のデータソースの種類について解説します。

XPages データソース解説 - 内部動作

XPages のデータソースの内部動作について解説します。
Community articleXPages のイベント処理サーバーオプション
Added by ~Martha Brekroflar | Edited by ~Martha Brekroflar on July 7, 2011 | Version 16
  • Actions Show Menu▼
expanded Abstract
collapsed Abstract
イベント処理を設定する際、データ処理に関して指定可能なサーバーオプションを解説します。
Tags: XPages, イベント, オプション, パフォーマンス
ShowTable of Contents
HideTable of Contents
  • 1 概要
  • 2 サンプルアプリケーション
  • 3 無指定
  • 4 データの検証または更新を行わない
  • 5 検証を行わずにデータ処理をする
  • 6 部分実行モードの設定
  • 7 サンプルアプリケーションコード

概要


XPages でアプリケーションを開発する際、マウスによるクリックやキー入力など、さまざまなイベントに対してアクションを設定することが可能です。
その際、いくつかのオプションが指定可能です。ここではそのうち、ちょっと区別が付きにくいデータ処理に関連するサーバーオプションについて解説します。

以下の3つが指定可能なオプションです。
* データの検証または更新を行わない
* 検証を行わずにデータを処理する
* 部分実行モードの設定


サンプルアプリケーション


これらのオプションを、以下の簡単なサンプルアプリケーションの動きを通して見て行きます。



アプリケーション上部には、2組の「編集ボックス」と「計算結果フィールド」のコントロールのペアが、「パネル」コントロールでグループ化されています。
それぞれのペアは、データとして sessionScope.value1 あるいは sessionScope.value2 にバインドされています。
これにより、「編集ボックス」に入力された値が送信処理されると、「計算結果フィールド」に表示されるという動きをします。
各「編集ボックス」は、妥当性検査として必須フィールドであると指定されています。

アプリケーション下部には、4つのボタンが配置されています。onclick のイベント処理として、「全て更新」が指定されています。
データ処理に関するオプションとしては、それぞれボタン名に書かれたもののみが指定されています。

無指定


もっとも基本的な動作です。

各「編集ボックス」に値を入力せずにクリックすると、データ検証が行われエラーが表示されます。



適当な値を入力した後クリックすると、入力された値が「計算結果フィールド」にも表示されます。



データの検証または更新を行わない


このオプションを指定した場合、「編集ボックス」の入力値のデータ検証が行われず、また入力された値の処理も一切行われません。

そのため、1つめの「編集ボックス」にのみ値を入力してクリックすると、以下のような結果となります。



検証を行わないため、2つめの「編集ボックス」が未入力でも送信処理が行われています。
しかしながらデータ処理も行わないため、1つめの「編集ボックス」に入力された値は「計算結果フィールド」に表示されません。

このオプションは、データ入力フォームを作成した際、「キャンセル」ボタンを実現する時などに用いるものです。
現在入力されている値が正しいかどうかによらず、全て破棄して処理を続行させるためのオプションです。

*Designer の日本語訳が良くないことが、このオプションの意味をわかりにくくしている一因になっています。
 正しくは「データの検証も更新も行わない」とするべきでしょう。

検証を行わずにデータ処理をする


このオプションを指定した場合、「編集ボックス」の入力値のデータ検証は行われませんが、入力された値の処理は実行されます。

そのため、1つめの「編集ボックス」にのみ値を入力してクリックすると、以下のような結果となります。



検証を行わないため、2つめの「編集ボックス」が未入力でも送信処理が行われています。
データ処理は行われるため、1つめの「編集ボックス」に入力された値が「計算結果フィールド」に表示されます。

このオプションは、「データの検証または更新を行わない」オプションとと排他的に指定可能です。

部分実行モードの設定


このオプションは、データ処理を行う際にページ全体ではなく指定した一部のみ実行することを指定します。

わかりにくいので、サンプルの実行を通して確認します。
このサンプルでは、実行するページの一部として、1つめのペアをクループ化している「パネル」をあらかじめ指定してあります。

最初に、両「編集ボックス」に値を入力して、「無指定」ボタンをクリックして処理を行っておきます。
結果は以下の通りです。



次に、入力値をそれぞれ"xxx"と"yyy"に変更して、「部分実行モードの設定」ボタンをクリックします。
実行結果は以下のようになります。



1つめのペアは部分実行すべき部分として指定されてたため、再入力された新しい値が表示されています。
しかしながら2つめのペアは処理が実行されなかったため、再入力された新しい値は無視され、最初の値に戻ってしまっています。

このオプションは何のためのものでしょうか?実は XPages はその基本構造として JSF (Java Server Faces) を利用しています。
そのフレームワーク内では、各コントロールに対してそれぞれ Java のクラスが生成され、そのクラスにより入力値の受け取りや
妥当性検査、データ処理が行われるようになっています。
その結果、コントロールをたくさん含むページほど、生成される Java のクラスも多くなり、その結果
消費されるリソースや処理時間が増大します。
そのため、ある処理を行う際、影響が及ぶ範囲がページの一部に限られていることがあらかじめわかっている場合には、
このオプションを用いてその部分だけ部分実行するように指定することにより、全体の処理を軽くすることが可能になります。

部分実行する対象要素を指定するには、「アウトライン」ペインで対象となる「イベントハンドラ」を選択し、「すべてのプロパティ」の
「execId」 属性として対象要素の ID を指定します。
指定がない場合には、その「イベントハンドラ」が定義されたコントロールそのものになります。



このオプションは、先の2つのオプションとは独立して、自由に設定することができます。

サンプルアプリケーションコード


最後に、今回利用しているサンプルアプリケーションのソースコードを添えておきます。Designer 上で新規の XPage を作成し、
ソースモードでコピーすることで試してみることができます。

<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core">
	<xp:panel id="panel1">
		<xp:inputText id="inputText1" value="#{sessionScope.value1}" required="true">
		<xp:this.validators>
			<xp:validateRequired message="必ず入力してください。"></xp:validateRequired>
		</xp:this.validators></xp:inputText>
		 =
		<xp:text escape="true" id="computedField1" value="#{sessionScope.value1}"></xp:text>
	</xp:panel>
	<xp:br></xp:br>
	<xp:panel id="panel2">
		<xp:inputText id="inputText2" value="#{sessionScope.value2}" required="true">
		<xp:this.validators>
			<xp:validateRequired message="必ず入力してください。"></xp:validateRequired>
		</xp:this.validators></xp:inputText>
		 =
		<xp:text escape="true" id="computedField2" value="#{sessionScope.value2}"></xp:text>
	</xp:panel>
	<xp:br></xp:br>
	<xp:button id="button1" value="無指定">
		<xp:eventHandler event="onclick" submit="true" refreshMode="complete">
		</xp:eventHandler></xp:button>
	<xp:br></xp:br><xp:br></xp:br>
	<xp:button value="データの検証または更新を行わない" id="button2">
		<xp:eventHandler event="onclick" submit="true" refreshMode="complete" immediate="true">
		</xp:eventHandler></xp:button>
	<xp:br></xp:br><xp:br></xp:br>
	<xp:button value="検証を行わずにデータを処理する" id="button3">
		<xp:eventHandler event="onclick" submit="true" refreshMode="complete" disableValidators="true">
		</xp:eventHandler></xp:button>
	<xp:br></xp:br><xp:br></xp:br>
	<xp:button value="部分実行モードの設定" id="button4">
		<xp:eventHandler event="onclick" submit="true" refreshMode="complete" execMode="partial" execId="panel1">
		</xp:eventHandler></xp:button>
</xp:view>

  • Actions Show Menu▼


expanded Attachments (0)
collapsed Attachments (0)
Edit the article to add or modify attachments.
expanded Versions (16)
collapsed Versions (16)
Version Comparison     
VersionDateChanged by              Summary of changes
This version (16)Jul 7, 2011, 4:51:26 AM~Martha Brekroflar  
15Jul 7, 2011, 4:49:33 AM~Yoshi Froluchekettu  
13Jul 7, 2011, 4:46:39 AM~Yoshi Froluchekettu  
12Jul 7, 2011, 4:44:00 AM~Yoshi Froluchekettu  
11Jul 7, 2011, 4:41:12 AM~Yoshi Froluchekettu  
10Jul 7, 2011, 4:31:14 AM~Yoshi Froluchekettu  
9Jul 7, 2011, 3:59:12 AM~Yoshi Froluchekettu  
8Jul 7, 2011, 3:40:09 AM~Yoshi Froluchekettu  
7Jul 7, 2011, 3:38:51 AM~Yoshi Froluchekettu  
6Jul 7, 2011, 3:35:05 AM~Yoshi Froluchekettu  
5Jul 7, 2011, 3:31:24 AM~Yoshi Froluchekettu  
4Jul 7, 2011, 3:31:16 AM~Yoshi Froluchekettu  
3Jul 7, 2011, 3:30:29 AM~Yoshi Froluchekettu  
2Jul 7, 2011, 3:30:15 AM~Yoshi Froluchekettu  
1Jul 7, 2011, 2:53:03 AM~Yoshi Froluchekettu  
1Jul 7, 2011, 2:52:32 AM~Yoshi Froluchekettu  
expanded Comments (0)
collapsed Comments (0)
Copy and paste this wiki markup to link to this article from another article in this wiki.
Go ElsewhereStay ConnectedAbout
  • HCL Software
  • HCL Digital Solutions community
  • HCL Software support
  • BlogsDigital Solutions blog
  • Community LinkHCL Software forums and blogs
  • About HCL
  • Privacy
  • Accessibility